package com.fourgirls.xiaoxiang.service.Medicine.Impl;

import com.fourgirls.xiaoxiang.dao.MedicineMapper;
import com.fourgirls.xiaoxiang.pojo.Medicine.MedicineIdVo;
import com.fourgirls.xiaoxiang.pojo.Medicine.*;
import com.fourgirls.xiaoxiang.pojo.Shopping.ShoppingMedicineNumberVo;
import com.fourgirls.xiaoxiang.service.Medicine.MedicineService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class MedicineServiceImpl implements MedicineService {
    @Autowired
    MedicineMapper medicineMapper;
//---------------------------------------------------------------查询分割线--------------------------------------------------------
    /**
     * 用级联的方法，查询user表和address表中的所有数据
     * @return 查询的数据
     */
    @Override
    public List<MedicineVo> findAllMedicine() {
        return medicineMapper.findAllMedicine();
    }

    @Override
    public MedicineVo findAllMedicineId(MedicineIdVo medicineIdVo) {
        return medicineMapper.findAllMedicineId(medicineIdVo);
    }

//    /**
//     * 查询medicine表中根据medicineId中的的所有数量
//     * @return 查询的数据
//     */
//    @Override
//    public List<ShoppingMedicineNumberVo> findAllMedicineNumber(int id) {
//        return medicineMapper.findAllMedicineNumber(id);
//    }

    /**
     * 查询medicine表中的所有数据（价格从高到低排序）
     * @return 查询的数据
     */
    @Override
    public List<MedicineVo> findAllMedicineUnivalence() {
        return medicineMapper.findAllMedicineUnivalence();
    }

    /**
     * 查询medicine表中的所有数据（评论从高到低排序）
     * @return 查询的数据
     */
    @Override
    public List<MedicineVo> findAllMedicineEvaluate() {
        return medicineMapper.findAllMedicineEvaluate();
    }

    /**
     * 查询medicine表中的所有数据（销售额从高到低排序）
     * @return 查询的数据
     */
    @Override
    public List<MedicineVo> findAllMedicineSalesVolume() {
        return medicineMapper.findAllMedicineSalesVolume();
    }


    /**
     * 查询medicine表中的所有数据（药品类型）
     * @return 查询的数据
     */
    @Override
    public List<MedicineVo> findAllMedicineSort(MedicineSortVo medicineSortVo) {
        return medicineMapper.findAllMedicineSort(medicineSortVo);
    }

    /**
     * 查询medicine表中的所有数据（商品名称）
     * @return 查询的数据
     */
    @Override
    public List<MedicineVo> findAllMedicineName(MedicineNameVo medicineNameVo) {
        return medicineMapper.findAllMedicineName(medicineNameVo);
    }


    //--------------------------------------------------------------增加分割线--------------------------------------------------------

    /**
     * 增加了medicien所以数据
     * @param medicineVo
     * @return
     */
    @Override
    public int addMedecine(MedicineVo medicineVo) {
        return medicineMapper.addMedecine(medicineVo);
    }


//--------------------------------------------------------------删除分割线--------------------------------------------------------

    /**
     * 根据Id删除medicine表中的数据
     * @param allIdVo
     * @return
     */
    @Override
    public int deleteMedecine(MedicineIdVo allIdVo) {
        return medicineMapper.deleteMedecine(allIdVo);
    }



    //---------------------------------------------------------------修改分割线--------------------------------------------------------
    /**
     * 修改medicine表中的所有数据
     * @return 查询的数据
     */
    @Override
    public int updateMedicine(MedicineVo medicineVo) {
        return medicineMapper.updateMedicine(medicineVo);
    }


    /**
     * 修改medicine表中的药品的数量
     * @return 查询的数据
     */
    @Override
    public int updateMedicineNumber(MedicineNumberVo medicineNumberVo) {
        return medicineMapper.updateMedicineNumber(medicineNumberVo);
    }

    /**
     * 修改medicine表中的所有评论数量（只能修改评论值，为后面用户增加评论+1 or -1做准备）
     * @return 查询的数据
     */
    @Override
    public int updateMedicineEvaluate(MedicineEvaluateVo medicineEvaluateVo) {
        return medicineMapper.updateMedicineEvaluate(medicineEvaluateVo);
    }

    /**
     * 查询medicine表中的所有销售额的数量（只能修改销售额，为后面用户买药品+1 or -1做准备）
     * @return 查询的数据
     */
    @Override
    public int updateMedicineSalesVolume(MedicineSalesVolumeVo medicineSalesVolumeVo) {
        return medicineMapper.updateMedicineSalesVolume(medicineSalesVolumeVo);
    }
}
